//594. 最长和谐子序列
//思路：1. 先对数组进行升序排列
//2. 遍历数组，当nums[end] - nums[begin] > 1时，让begin++
//3. 当nums[end] - nums[begin] = 1时，我们就更新max，当遍历完数组，最后的max就是最长长度

#include <stdlib.h>
#include <math.h>
int cmp_int(const void* p1, const void* p2){
    return *(int*)p1 - *(int*)p2;
}
int findLHS(int* nums, int numsSize){
    qsort(nums, numsSize, sizeof(int), cmp_int);   
    int max = 0;
    int begin = 0, end = 0;
    for(int i = 0; i < numsSize; i++)
    {
        if(nums[end] - nums[begin] > 1)
            begin++;
        if(nums[end] - nums[begin] == 1)
            max = fmax(max, end-begin+1);
    } 
    return max;
}